# 引入合适的包
from PIL import Image
import numpy as np
from skimage import io
import matplotlib.pyplot as plt

img_0 = Image.open("x_8bit.png")  # 用 PIL引入 x_8bit.png 到 img_0

img_0_info = f'img_0 type: {(type(img_0))}'  # 定义信息字符串，包含img_0的变量类型

img_1 = np.array(img_0)  # 把 img_0 存入 numpy 数组
img_1[0, 0] = 255  # 把图像左上角调整到最亮

# 定义关于img_1的信息字符串包括
# 1. 变量类型
# 2. 变量形状
# 3. 变量的元素的类型
img_1_info = f'''         
img_1 type: {type(img_1)}
img_1 shape: {img_1.shape}
img_1 element type: {img_1.dtype}
'''

io.imsave('x_out.png', img_1)  # 用 skimage 保存 img_1 到 x_out.png

img_out = io.imread('x_out.png')  # 用 skimage 读取 x_out.png 到 img_out

# 定义一个双子图画板
# 画板的大小设置为高10宽20，即加一个参数:  figsize = (10,20)
fg, ax = plt.subplots(1, 2, figsize=(10, 20))

# 第1个子图已灰度图的形式直接绘制 img_0 并添加标题 img_0_info(左对齐)
ax[0].imshow(img_0, cmap='gray')
ax[0].set_title(img_0_info, loc='left')

# 第2个子图已灰度图的形式直接绘制 img_out 并添加标题 img_1_info(左对齐)
ax[1].imshow(img_1, cmap='gray')
ax[1].set_title(img_1_info, loc='left')

plt.tight_layout()  # 调整多子图位置

# plt.show() #显示最终效果，因为要保存最终效果，所以该句话被注释掉了

# 把最终结果通过 matplotlib 保存到 result_x.png 文件中，要包裹好最终的结果
plt.savefig('result_x.png', bbox_inches='tight')
